///PHILOTES Source Code.  (C)2012 PhiloLabs
#pragma once

#ifndef _FactoryObj_H__
#define _FactoryObj_H__

#include "OgrePrerequisites.h"

namespace Ogre {

	
	
	
    template< typename T > class FactoryObj
    {
    public:
        virtual ~FactoryObj() {}

        
        virtual const String& getType() const = 0;

        
        virtual T* createInstance( const String& name ) = 0;    
        
        virtual void destroyInstance( T* ) = 0;    
    };

	
	
} // namespace

#endif
